-
Notifications
You must be signed in to change notification settings - Fork 1.3k
[Live Debugger] Add instructions for Go (limited preview) #32935
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
2509435 to
4b518dc
Compare
b4fe31c to
6a8ea0f
Compare
|
Created DOCS-13027 for docs review. |
shatzi
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
looks good. small comment on installation structure
content/en/tracing/trace_collection/dynamic_instrumentation/enabling/go.md
Show resolved
Hide resolved
b7bbd68 to
de12155
Compare
|
Integrated the runtime toggle fix. |
domalessi
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for all the work on this PR! I left a handful of comments/questions/suggestions. Give everything a read-through, and let me know if you have any questions. Hit me up when this is ready for another look!
content/en/tracing/trace_collection/dynamic_instrumentation/_index.md
Outdated
Show resolved
Hide resolved
| - For Node.js applications, tracing library [`dd-trace-js`][18] 5.39.0 or higher. | ||
| - (Limited Preview) For Ruby applications, tracing library [`dd-trace-rb`][19] 2.9.0 or higher. | ||
| - (Limited Preview) For PHP applications, tracing library [`dd-trace-php`][20] 1.5.0 or higher. | ||
| - (Limited Preview) For Go applications, tracing library [`dd-trace-go`][21] >=1.74.6 or >=2.2.3. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm confused why we need both?
| - (Limited Preview) For Go applications, tracing library [`dd-trace-go`][21] >=1.74.6 or >=2.2.3. | |
| - (Limited Preview) For Go applications, tracing library [`dd-trace-go`][21] >=1.74.6. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The dd-trace-go library is undergoing a long process of transitioning to a new major version, that has incompatible API. Some users already switched to new version, some didn't, we need to cater for both. So the support for our product has been backported to previous major version as well.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, okay, got it. I think then maybe something like this??
- (Limited Preview) For Go applications, tracing library [`dd-trace-go`][21] >=v1.74.6 (major version 1), or >=v2.2.3 (major version 2).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done (without a v before the number though, for consistency).
content/en/tracing/trace_collection/dynamic_instrumentation/_index.md
Outdated
Show resolved
Hide resolved
content/en/tracing/trace_collection/dynamic_instrumentation/enabling/go.md
Outdated
Show resolved
Hide resolved
content/en/tracing/trace_collection/dynamic_instrumentation/enabling/go.md
Outdated
Show resolved
Hide resolved
content/en/tracing/trace_collection/dynamic_instrumentation/enabling/go.md
Outdated
Show resolved
Hide resolved
content/en/tracing/trace_collection/dynamic_instrumentation/enabling/go.md
Outdated
Show resolved
Hide resolved
content/en/tracing/trace_collection/dynamic_instrumentation/enabling/go.md
Outdated
Show resolved
Hide resolved
Co-authored-by: domalessi <[email protected]>
piob-io
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you, suggestions applied.
| - For Node.js applications, tracing library [`dd-trace-js`][18] 5.39.0 or higher. | ||
| - (Limited Preview) For Ruby applications, tracing library [`dd-trace-rb`][19] 2.9.0 or higher. | ||
| - (Limited Preview) For PHP applications, tracing library [`dd-trace-php`][20] 1.5.0 or higher. | ||
| - (Limited Preview) For Go applications, tracing library [`dd-trace-go`][21] >=1.74.6 or >=2.2.3. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The dd-trace-go library is undergoing a long process of transitioning to a new major version, that has incompatible API. Some users already switched to new version, some didn't, we need to cater for both. So the support for our product has been backported to previous major version as well.
|
|
||
| {{< tabs >}} | ||
| {{% tab "Configuration YAML file" %}} | ||
| Update your `system-probe.yaml` file with: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think in this case it's always system-probe.yaml (that's how the agent knows which component the config applies to). When it's a helm chart (the last tab), then it's up to the user (the config internally encodes what config fragments are for what component). Added a link to the documentation.
content/en/tracing/trace_collection/dynamic_instrumentation/enabling/go.md
Show resolved
Hide resolved
content/en/tracing/trace_collection/dynamic_instrumentation/enabling/go.md
Outdated
Show resolved
Hide resolved
content/en/tracing/trace_collection/dynamic_instrumentation/enabling/go.md
Outdated
Show resolved
Hide resolved
| Note that <a href="#limitations">some limitations</a> apply to the preview. | ||
| {{< /beta-callout-private >}} | ||
|
|
||
| Dynamic Instrumentation is a feature of supporting Datadog tracing libraries. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Weird indeed. Suggested a different phrasing. Saying about plural "Datadog tracing libraries" refers to one library per language. But we are already on a language-specific page. I omitted explanation what the feature is, this is just an enablement page. This intro to my mind just sets the expectation, that users needs to use the APM tracing libraries.
domalessi
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for all the changes, @piob-io ! V close, I think. Left a handful of additional comments. Give those a look-through and let me know when ready for a final check.
| - For Node.js applications, tracing library [`dd-trace-js`][18] 5.39.0 or higher. | ||
| - (Limited Preview) For Ruby applications, tracing library [`dd-trace-rb`][19] 2.9.0 or higher. | ||
| - (Limited Preview) For PHP applications, tracing library [`dd-trace-php`][20] 1.5.0 or higher. | ||
| - (Limited Preview) For Go applications, tracing library [`dd-trace-go`][21] >=1.74.6 or >=2.2.3. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, okay, got it. I think then maybe something like this??
- (Limited Preview) For Go applications, tracing library [`dd-trace-go`][21] >=v1.74.6 (major version 1), or >=v2.2.3 (major version 2).
| --- | ||
|
|
||
| Dynamic Instrumentation is a feature of supporting Datadog tracing libraries. If you are already using [APM to collect traces][1] for your application, ensure your Agent and tracing library are on the required version. Then, go directly to enabling Dynamic Instrumentation in step 4. | ||
| Dynamic Instrumentation is a feature provided by the Datadog tracing library. If you are already using [APM to collect traces][1] for your application, ensure your Agent and tracing library are on the required version. Then, go directly to enabling Dynamic Instrumentation in step 4. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've been told we're trying to move away from "tracing library" and instead say "Datadog SDK", but that might require a finer comb-through. Created a Jira to track! https://datadoghq.atlassian.net/browse/DOCS-13107
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Gtk, thanks. Yeah, for now let's keep it more consistent.
content/en/tracing/trace_collection/dynamic_instrumentation/enabling/python.md
Outdated
Show resolved
Hide resolved
content/en/tracing/trace_collection/dynamic_instrumentation/enabling/go.md
Outdated
Show resolved
Hide resolved
content/en/tracing/trace_collection/dynamic_instrumentation/enabling/go.md
Outdated
Show resolved
Hide resolved
content/en/tracing/trace_collection/dynamic_instrumentation/enabling/go.md
Outdated
Show resolved
Hide resolved
| DD_DYNAMIC_INSTRUMENTATION_ENABLED=true | ||
| ``` | ||
|
|
||
| 3. Configure Unified Service Tags so that you can filter and group your instrumentations and target active clients across these dimensions: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we link to USTs here? https://docs.datadoghq.com/getting_started/tagging/unified_service_tagging/?tab=kubernetes
| 4. Restart your service. | ||
| 5. After the service starts, you can add and manage instrumentations from the [**APM** > **Live Debugger**][3] page. | ||
|
|
||
| ## Configuration |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's a little confusing to me to have this section here since we already cover setting these env vars in the above sections. If we want to include this consolidated table, maybe we rename the title? So that people know it's just a reference? Or we delete the table entirely and add the details about DD_SERVICE, etc into the steps above where we first mention them.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Removed, I think with the link to UST docs, that's enough.
content/en/tracing/trace_collection/dynamic_instrumentation/enabling/go.md
Outdated
Show resolved
Hide resolved
Co-authored-by: domalessi <[email protected]>
piob-io
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you!
| - For Node.js applications, tracing library [`dd-trace-js`][18] 5.39.0 or higher. | ||
| - (Limited Preview) For Ruby applications, tracing library [`dd-trace-rb`][19] 2.9.0 or higher. | ||
| - (Limited Preview) For PHP applications, tracing library [`dd-trace-php`][20] 1.5.0 or higher. | ||
| - (Limited Preview) For Go applications, tracing library [`dd-trace-go`][21] >=1.74.6 or >=2.2.3. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done (without a v before the number though, for consistency).
| --- | ||
|
|
||
| Dynamic Instrumentation is a feature of supporting Datadog tracing libraries. If you are already using [APM to collect traces][1] for your application, ensure your Agent and tracing library are on the required version. Then, go directly to enabling Dynamic Instrumentation in step 4. | ||
| Dynamic Instrumentation is a feature provided by the Datadog tracing library. If you are already using [APM to collect traces][1] for your application, ensure your Agent and tracing library are on the required version. Then, go directly to enabling Dynamic Instrumentation in step 4. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Gtk, thanks. Yeah, for now let's keep it more consistent.
| 4. Restart your service. | ||
| 5. After the service starts, you can add and manage instrumentations from the [**APM** > **Live Debugger**][3] page. | ||
|
|
||
| ## Configuration |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Removed, I think with the link to UST docs, that's enough.
|
@domalessi any more comments? |
https://datadoghq.atlassian.net/browse/DEBUG-4711
What does this PR do? What is the motivation?
Update docs for Live Debugger for Go for limited preview.
Merge instructions
Merge readiness:
For Datadog employees:
Your branch name MUST follow the
<name>/<description>convention and include the forward slash (/). Without this format, your pull request will not pass CI, the GitLab pipeline will not run, and you won't get a branch preview. Getting a branch preview makes it easier for us to check any issues with your PR, such as broken links.If your branch doesn't follow this format, rename it or create a new branch and PR.
[6/5/2025] Merge queue has been disabled on the documentation repo. If you have write access to the repo, the PR has been reviewed by a Documentation team member, and all of the required checks have passed, you can use the Squash and Merge button to merge the PR. If you don't have write access, or you need help, reach out in the #documentation channel in Slack.
Additional notes